<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        html,
        body {
            height: 100%;
        }
        body {
            margin: 0;
            padding: 0;
            position: relative;
            background: #f1f1f1;
        }
        p {
            margin-bottom: 15px;
        }
        .fix-middle {
            position: absolute;
            padding: 10px;
            top: 50%;
            left: 50%;
            -webkit-transform: translate(-50%, -50%);
            -khtml-box-shadow: translate(-50%, -50%);
            -moz-box-shadow: translate(-50%, -50%);
            -ms-transform: translate(-50%, -50%);
            -o-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
            z-index: 3;
        }
        .text-center {
            text-align: center;
        }
        .info-btn {
            display: inline-block;
            height: 40px;
            width: 40px;
            background-color: #3498db;
            border-radius: 100%;
            position: relative;
            color: #fff;
        }
        .info-btn i {
            position: absolute;
            top: 50%;
            left: 50%;
            -webkit-transform: translate(-50%, -50%);
            -khtml-box-shadow: translate(-50%, -50%);
            -moz-box-shadow: translate(-50%, -50%);
            -ms-transform: translate(-50%, -50%);
            -o-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
            font-size: 20px;
        }
        .info-btn .info-tooltip {
            min-width: 120px;
            max-width: 250px;
            position: absolute;
            left: 50%;
            bottom: 110%;
            z-index: 2;
            -webkit-transform: translate(-50%, 0);
            -khtml-box-shadow: translate(-50%, 0);
            -moz-box-shadow: translate(-50%, 0);
            -ms-transform: translate(-50%, 0);
            -o-transform: translate(-50%, 0);
            transform: translate(-50%, 0);
            -webkit-box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.3);
            -khtml-box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.3);
            -moz-box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.3);
            -ms-box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.3);
            -o-box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.3);
            box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.3);
            background-color: #3498db;
            color: #fff;
            text-align: center;
            font-size: 12px;
            line-height: 1.42;
            padding: 5px 10px;
            border-radius: 3px;
            display: none;
        }
        .info-btn .info-tooltip:after {
            position: absolute;
            right: auto;
            top: 95%;
            left: 50%;
            -webkit-transform: translate(-50%, 0);
            -khtml-box-shadow: translate(-50%, 0);
            -moz-box-shadow: translate(-50%, 0);
            -ms-transform: translate(-50%, 0);
            -o-transform: translate(-50%, 0);
            transform: translate(-50%, 0);
            border-width: 15px 12px 0 12px;
            border-color: #3498db transparent transparent transparent;
            content: " ";
            display: inline-block;
            margin: 0;
            border-style: solid;
            z-index: 3;
        }
        .info-btn .info-tooltip:before {
            -webkit-animation-direction: alternate;
            animation-direction: alternate;
        }
        .info-btn:hover {
            color: #3498db;
        }
        .info-btn:hover:before {
            position: absolute;
            top: 2px;
            left: 2px;
            right: 2px;
            bottom: 2px;
            background-color: #fff;
            display: block;
            border-radius: 100%;
            content: '';
            -webkit-animation: hoverAnimation 1000ms linear both;
            animation: hoverAnimation 1000ms linear both;
        }
        .info-btn.info-on-hover:hover .info-tooltip {
            display: block;
            -webkit-animation: swooshUp20 200ms cubic-bezier(0.25, 0.5, 0.5, 0.9);
            animation: swooshUp20 200ms cubic-bezier(0.25, 0.5, 0.5, 0.9);
        }
        .info-btn.info-on-action:focus,
        .info-btn.info-on-action:active {
            color: #3498db;
        }
        .info-btn.info-on-action:focus:before,
        .info-btn.info-on-action:active:before {
            position: absolute;
            top: 2px;
            left: 2px;
            right: 2px;
            bottom: 2px;
            background-color: #fff;
            display: block;
            border-radius: 100%;
            content: '';
            -webkit-animation: hoverAnimation 1000ms linear both;
            animation: hoverAnimation 1000ms linear both;
        }
        .info-btn.info-on-action:focus .info-tooltip,
        .info-btn.info-on-action:active .info-tooltip {
            display: block;
            -webkit-animation: swooshUp20 200ms cubic-bezier(0.25, 0.5, 0.5, 0.9);
            animation: swooshUp20 200ms cubic-bezier(0.25, 0.5, 0.5, 0.9);
        }
        @-webkit-keyframes hoverAnimation {
            0% {
                -webkit-transform: matrix3d(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            4.7% {
                -webkit-transform: matrix3d(0.45, 0, 0, 0, 0, 0.45, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(0.45, 0, 0, 0, 0, 0.45, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            9.41% {
                -webkit-transform: matrix3d(0.883, 0, 0, 0, 0, 0.883, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(0.883, 0, 0, 0, 0, 0.883, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            14.11% {
                -webkit-transform: matrix3d(1.141, 0, 0, 0, 0, 1.141, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(1.141, 0, 0, 0, 0, 1.141, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            18.72% {
                -webkit-transform: matrix3d(1.212, 0, 0, 0, 0, 1.212, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(1.212, 0, 0, 0, 0, 1.212, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            24.32% {
                -webkit-transform: matrix3d(1.151, 0, 0, 0, 0, 1.151, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(1.151, 0, 0, 0, 0, 1.151, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            29.93% {
                -webkit-transform: matrix3d(1.048, 0, 0, 0, 0, 1.048, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(1.048, 0, 0, 0, 0, 1.048, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            35.54% {
                -webkit-transform: matrix3d(0.979, 0, 0, 0, 0, 0.979, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(0.979, 0, 0, 0, 0, 0.979, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            41.04% {
                -webkit-transform: matrix3d(0.961, 0, 0, 0, 0, 0.961, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(0.961, 0, 0, 0, 0, 0.961, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            52.15% {
                -webkit-transform: matrix3d(0.991, 0, 0, 0, 0, 0.991, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(0.991, 0, 0, 0, 0, 0.991, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            63.26% {
                -webkit-transform: matrix3d(1.007, 0, 0, 0, 0, 1.007, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(1.007, 0, 0, 0, 0, 1.007, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            85.49% {
                -webkit-transform: matrix3d(0.999, 0, 0, 0, 0, 0.999, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(0.999, 0, 0, 0, 0, 0.999, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            100% {
                -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
        }
        @keyframes hoverAnimation {
            0% {
                -webkit-transform: matrix3d(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            4.7% {
                -webkit-transform: matrix3d(0.45, 0, 0, 0, 0, 0.45, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(0.45, 0, 0, 0, 0, 0.45, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            9.41% {
                -webkit-transform: matrix3d(0.883, 0, 0, 0, 0, 0.883, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(0.883, 0, 0, 0, 0, 0.883, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            14.11% {
                -webkit-transform: matrix3d(1.141, 0, 0, 0, 0, 1.141, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(1.141, 0, 0, 0, 0, 1.141, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            18.72% {
                -webkit-transform: matrix3d(1.212, 0, 0, 0, 0, 1.212, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(1.212, 0, 0, 0, 0, 1.212, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            24.32% {
                -webkit-transform: matrix3d(1.151, 0, 0, 0, 0, 1.151, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(1.151, 0, 0, 0, 0, 1.151, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            29.93% {
                -webkit-transform: matrix3d(1.048, 0, 0, 0, 0, 1.048, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(1.048, 0, 0, 0, 0, 1.048, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            35.54% {
                -webkit-transform: matrix3d(0.979, 0, 0, 0, 0, 0.979, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(0.979, 0, 0, 0, 0, 0.979, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            41.04% {
                -webkit-transform: matrix3d(0.961, 0, 0, 0, 0, 0.961, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(0.961, 0, 0, 0, 0, 0.961, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            52.15% {
                -webkit-transform: matrix3d(0.991, 0, 0, 0, 0, 0.991, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(0.991, 0, 0, 0, 0, 0.991, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            63.26% {
                -webkit-transform: matrix3d(1.007, 0, 0, 0, 0, 1.007, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(1.007, 0, 0, 0, 0, 1.007, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            85.49% {
                -webkit-transform: matrix3d(0.999, 0, 0, 0, 0, 0.999, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(0.999, 0, 0, 0, 0, 0.999, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
            100% {
                -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
            }
        }
        @-webkit-keyframes swooshUp20 {
            0% {
                -webkit-transform: translate(-50%, 50%);
                -khtml-box-shadow: translate(-50%, 50%);
                -moz-box-shadow: translate(-50%, 50%);
                -ms-transform: translate(-50%, 50%);
                -o-transform: translate(-50%, 50%);
                transform: translate(-50%, 50%);
                opacity: 0;
            }
            39.44% {
                opacity: 0;
            }
            100% {
                -webkit-transform: translate(-50%, 0);
                -khtml-box-shadow: translate(-50%, 0);
                -moz-box-shadow: translate(-50%, 0);
                -ms-transform: translate(-50%, 0);
                -o-transform: translate(-50%, 0);
                transform: translate(-50%, 0);
                opacity: 1;
            }
        }
        @-moz-keyframes swooshUp20 {
            0% {
                -webkit-transform: translate(-50%, 50%);
                -khtml-box-shadow: translate(-50%, 50%);
                -moz-box-shadow: translate(-50%, 50%);
                -ms-transform: translate(-50%, 50%);
                -o-transform: translate(-50%, 50%);
                transform: translate(-50%, 50%);
                opacity: 0;
            }
            39.44% {
                opacity: 0;
            }
            100% {
                -webkit-transform: translate(-50%, 0);
                -khtml-box-shadow: translate(-50%, 0);
                -moz-box-shadow: translate(-50%, 0);
                -ms-transform: translate(-50%, 0);
                -o-transform: translate(-50%, 0);
                transform: translate(-50%, 0);
                opacity: 1;
            }
        }
        @keyframes swooshUp20 {
            0% {
                -webkit-transform: translate(-50%, 50%);
                -khtml-box-shadow: translate(-50%, 50%);
                -moz-box-shadow: translate(-50%, 50%);
                -ms-transform: translate(-50%, 50%);
                -o-transform: translate(-50%, 50%);
                transform: translate(-50%, 50%);
                opacity: 0;
            }
            39.44% {
                opacity: 0;
            }
            100% {
                -webkit-transform: translate(-50%, 0);
                -khtml-box-shadow: translate(-50%, 0);
                -moz-box-shadow: translate(-50%, 0);
                -ms-transform: translate(-50%, 0);
                -o-transform: translate(-50%, 0);
                transform: translate(-50%, 0);
                opacity: 1;
            }
        }
    </style>
</head>
<body>
<div class="fix-middle">
    <div class="text-center">
        <p>Tooltip on click:</p>
        <a href="#" class="info-btn info-on-action">
            <i class="fa fa-info"></i>
            <span class="info-tooltip">The quick fox jumped over the crazy dog</span>
        </a>
    </div>
    <div class="text-center">
        <p>Tooltip on hover:</p>
        <a href="#" class="info-btn info-on-hover">
            <i class="fa fa-info"></i>
            <span class="info-tooltip">The quick fox jumped over the crazy dog</span>
        </a>
    </div>
</div>
</body>
</html>